import axios from 'axios'
import { ElMessage } from 'element-plus'
import router from '../router'
//创建axios实例对象
const request = axios.create({
  baseURL: '/api',
  timeout: 600000
})

//axios的响应 response 拦截器
request.interceptors.response.use (
  (response) =>{ //成功回调
    return response.data
  },
  (error) => { //失败回调
    // 判断是不是由于没登陆引起的401状态码
    if(error.response.status===401){
      // 提示信息
        ElMessage.error('登录超时,请重新登录')
      // 跳转到登录页面
        router.push("/login");
    } else {
      ElMessage.error('系统异常 , 请联系管理员')
    }
    return Promise.reject(error)
  }
)


// axios的请求拦截器
// 需要从localStorage中获取token 并加入到请求头中
request.interceptors.request.use(
    (config)=>{
      const loginUser=JSON.parse(localStorage.getItem('loginUser'));
      if(loginUser && loginUser.token){
        // 从loginUser中获取到token并加入到请求头中的Authorization字段，使用Bearer前缀
        config.headers.Authorization = `Bearer ${loginUser.token}`;
      }
      return config;
    } ,
    (error) =>{
      return Promise.reject(error)
    }
)


export default request